]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
Move style updates in AppIcon._onStateChanged out
authorYuki <yuuki.k.osada@gmail.com>
Sat, 1 Nov 2014 14:24:03 +0000 (22:24 +0800)
committerFlorian Müllner <fmuellner@gnome.org>
Thu, 6 Nov 2014 20:22:33 +0000 (21:22 +0100)
There is currently no simple way to inject into AppIcon's state change,
so an extension that wants to do this has to destroy/remove/update all
icons in the Shell (i.e. in the Dash, AllView, FrequentView) on enable()
and disable() after updating AppIcon.prototype._onStateChange, or the
extension must require a restart of the Shell.

To solve this issue, we rename _onStateChanged to _updateRunningStyle,
and connect the notify::state signal with an anonymous function that
calls _updateRunningStyle.
This extra function call should allow extensions to just extend the
updateRunningStyle function in the prototype.

https://bugzilla.gnome.org/show_bug.cgi?id=739497

js/ui/appDisplay.js

index 4f182eccdc3d91aec1006fa28dae7dcbdc43ccc5..5a14aca9ef3586c387ed815a33031b3297af84a4 100644 (file)
@@ -1562,10 +1562,11 @@ const AppIcon = new Lang.Class({
         this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
 
         this._menuTimeoutId = 0;
-        this._stateChangedId = this.app.connect('notify::state',
-                                                Lang.bind(this,
-                                                          this._onStateChanged));
-        this._onStateChanged();
+        this._stateChangedId = this.app.connect('notify::state', Lang.bind(this,
+            function () {
+                this._updateRunningStyle();
+            }));
+        this._updateRunningStyle();
     },
 
     _onDestroy: function() {
@@ -1586,7 +1587,7 @@ const AppIcon = new Lang.Class({
         }
     },
 
-    _onStateChanged: function() {
+    _updateRunningStyle: function() {
         if (this.app.state != Shell.AppState.STOPPED)
             this.actor.add_style_class_name('running');
         else